// 定义服务类所在的包
package com.zhunaer.service;

// 导入 Room 实体类，用于在服务接口中处理 Room 对象
import com.zhunaer.entity.Room;

/**
 * RoomService 接口定义了与房间相关的业务逻辑操作。
 * 该接口提供了查找房间、更新房间库存、减少房间库存以及根据 ID 获取房间信息等方法。
 */
public interface RoomService {
    /**
     * 根据房间 ID 查找房间信息。
     *
     * @param roomId 要查找的房间的唯一标识符。
     * @return 如果找到对应的房间，则返回该 Room 对象；若未找到，可能返回 null，具体取决于实现。
     */
    Room findById(Integer roomId);

    /**
     * 更新指定房间的库存数量。
     *
     * @param roomId 要更新库存的房间的唯一标识符。
     * @param quantity 要更新的库存数量，可正可负，正数表示增加库存，负数表示减少库存。
     * @return 操作影响的行数，通常成功更新时返回 1，失败返回 0。
     */
    int updateStock(Integer roomId, Integer quantity);

    /**
     * 减少指定房间的库存数量。
     *
     * @param room 要减少库存的 Room 对象。
     * @param quantity 要减少的库存数量，必须为正数。
     */
    void reduceStock(Room room, int quantity);

    /**
     * 根据房间 ID 获取房间信息。
     *
     * @param roomId 要获取信息的房间的唯一标识符。
     * @return 如果找到对应的房间，则返回该 Room 对象；若未找到，可能返回 null，具体取决于实现。
     */
    Room getRoomById(int roomId);
}